home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / XIRCOM / CPQ / OEMSETUP.INF < prev   
Encoding:
INI File  |  1996-07-31  |  52.5 KB  |  1,673 lines

  1. ;***********************************************************************
  2. ;
  3. ; Compaq Ethernet LAN Card
  4. ;
  5. ;
  6. ; (c) 1995 Compaq Computer Corporation
  7. ;
  8. ;****************************************************************************************************
  9.  
  10. [Identification]
  11.     OptionType = NetAdapter
  12.  
  13. [PlatformsSupported]
  14.     ISA
  15.     EISA
  16.     MCA
  17.  
  18. [Options]
  19.     CPQNDIS
  20.  
  21. [OptionsTextENG]
  22.     CPQNDIS    = "Compaq Ethernet LAN Card"
  23.  
  24. [AllFileConstants]
  25. GenericInfVersion  = " v1.32"
  26. ;  File names, etc. ----------------------------------------
  27. UtilityInf      = "UTILITY.INF"
  28. ParamInf        = "NCPARAM.INF"
  29. subroutineinf   = "SUBROUTN.INF"
  30. SoftwareType    = "driver"
  31. Exit_Code       = 0
  32. ; EventLog Message File     ----------------------------------------
  33. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  34. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  35. ; Product Info ----------------------------------------
  36. Manufacturer    = "Compaq"
  37. ; Flow control variables  ----------------------------------------
  38. RUNDLLCODE        = 1
  39. HOTPROGRAMPCMCIA = ""
  40.  
  41.  
  42. ;There is one FileConstants section for each adapter supported in the [Options] section
  43.  
  44.  
  45. [FileConstants-CPQNDIS]
  46. GenericAdapterName = "Compaq Ethernet LAN Card"
  47. GenericDriverName  = "Compaq Ethernet LAN Card Driver"
  48. GenericSysName     = "cpqndis.sys"
  49. GenericName        = "cpqndis"
  50. ; Product Info ----------------------------------------
  51. ProductMajorVersion     = "3"
  52. ProductMinorVersion     = "12"
  53. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  54. ; Software  ----------------------------------------
  55. ProductSoftwareName     = "CPQNDIS"
  56. ProductSoftwareDescription = "Compaq Ethernet LAN Card Driver"
  57. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  58. NetRuleSoftwareType     = "cpqndisSys ndisDriver cpqndisDriver"
  59. NetRuleSoftwareUse      = $(SoftwareType)
  60. NetRuleSoftwareBindForm = """cpqndisSys"" yes no container"
  61. NetRuleSoftwareClass    = {"cpqndisDriver basic"}
  62. NetRuleSoftwareBindable = {"cpqndisDriver cpqndisAdapter non exclusive 100"}
  63. ; Hardware  ----------------------------------------
  64. ProductHardwareName        = "CPQNDIS"
  65. ProductHardwareDescription = "Compaq Ethernet LAN Card"
  66. NetRuleHardwareType        = "cpqndis cpqndisAdapter"
  67. NetRuleHardwareBindForm    = " yes yes container"
  68. NetRuleHardwareClass       = {"cpqndisAdapter basic"}
  69. ; Registry Key  ----------------------------------------
  70. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  71. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  72. ; Tuple Information -----------------------------------
  73. VERS1Manufacturer = "Compaq"
  74. VERS1Product      = "Ethernet LAN Card"
  75. VERS1Type          = "1.0"
  76. PCMCIA              = 1
  77.  
  78.  
  79. [GeneralConstants]
  80. ;  Program flow control variables.
  81. from      = ""
  82. to        = ""
  83. ;  Return codes; Exit_Code is set to one of these
  84. ExitCodeOk     = 0
  85. ExitCodeCancel = 1
  86. ExitCodeFatal  = 2
  87. KeyNull         = ""
  88. MAXIMUM_ALLOWED   = 33554432
  89. RegistryErrorIndex = NO_ERROR
  90. KeyProduct      = ""
  91. KeyParameters   = ""
  92. TRUE            = 1
  93. FALSE           = 0
  94. NoTitle            = 0
  95. ExitState   = "Active"
  96. OldVersionExisted = $(FALSE)
  97. DriverPath      = $(!STF_NTPATH)\drivers
  98.  
  99.  
  100.  
  101.  
  102. [date]
  103.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  104.     ; Minute, Second }
  105.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  106.  
  107.  
  108. ;---------------------------------------------------------------------------
  109. ; 1. Identify
  110. ;
  111. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  112. ;                as we are choosing currently.
  113. ;
  114. ; INPUT:         None
  115. ;
  116. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  117. ;                $($R1): Option Type (COMPUTER ...)
  118. ;                $($R2): Diskette description
  119. ;---------------------------------------------------------------------------
  120.  
  121. [Identify]
  122.     ;
  123.     ;
  124.     read-syms Identification
  125.  
  126.     set Status     = STATUS_SUCCESSFUL
  127.     set Identifier = $(OptionType)
  128.     set Media      = #("Source Media Descriptions", 1, 1)
  129.  
  130.     Return $(Status) $(Identifier) $(Media)
  131.  
  132. ;------------------------------------------------------------------------
  133. ; 2. ReturnOptions:
  134. ;
  135. ; DESCRIPTION:   To return the option list supported by this INF and the
  136. ;                localised text list representing the options.
  137. ;
  138. ;
  139. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  140. ;
  141. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  142. ;                                STATUS_NOLANGUAGE
  143. ;                                STATUS_FAILED
  144. ;                                STATUS_NOTSUPPORTED
  145. ;
  146. ;                $($R1): Option List
  147. ;                $($R2): Option Text List
  148. ;------------------------------------------------------------------------
  149.  
  150. [ReturnOptions]
  151.     ;
  152.     ;
  153.     set Status        = STATUS_FAILED
  154.     set OptionList     = {}
  155.     set OptionTextList = {}
  156.  
  157.     ;
  158.     ; Check if the language requested is supported
  159.     ;
  160.     set LanguageList = ^(LanguagesSupported, 1)
  161.     Ifcontains(i) $($0) in $(LanguageList)
  162.         ;
  163.         ; Check if the platforms requested is supported
  164.         ;
  165.         ifstr(i) $($1) == ""
  166.                         goto returnoptions
  167.         endif
  168.  
  169.         set PlatformList = ^(PlatformsSupported, 1)
  170.         Ifcontains(i) $($1) in $(PlatformList)
  171.                         goto returnoptions
  172.         else
  173.                         set Status = STATUS_NOTSUPPORTED
  174.                         goto finish_ReturnOptions
  175.         endif
  176.     else
  177.                 set Status = STATUS_NOLANGUAGE
  178.                 goto finish_ReturnOptions
  179.     endif
  180.  
  181.     ;
  182.     ; form a list of all the options and another of the text representing
  183.     ;
  184.  
  185. returnoptions = +
  186.     set OptionList     = ^(Options, 1)
  187.     set OptionTextList = ^(OptionsText$($0), 1)
  188.     set Status         = STATUS_SUCCESSFUL
  189.  
  190. finish_ReturnOptions = +
  191.     Return $(Status) $(OptionList) $(OptionTextList)
  192.  
  193. ;------------------------------------------------------------------------
  194. ;
  195. ; InstallOption:
  196. ;
  197. ;      This section is shelled to by main installation processing
  198. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  199. ;
  200. ;
  201. ; FUNCTION:  To copy files representing Options
  202. ;            To configure the installed option
  203. ;            To update the registry for the installed option
  204. ;
  205. ; INPUT:     $($0):  Language to use
  206. ;            $($1):  OptionID to install
  207. ;            $($2):  SourceDirectory
  208. ;            $($3):  AddCopy  (YES | NO)
  209. ;            $($4):  DoCopy   (YES | NO)
  210. ;            $($5):  DoConfig (YES | NO)
  211. ;
  212. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  213. ;                            STATUS_NOLANGUAGE |
  214. ;                            STATUS_USERCANCEL |
  215. ;                            STATUS_FAILED
  216. ;
  217. ;------------------------------------------------------------------------
  218. [InstallOption]
  219.     ;
  220.     ; Set default values for
  221.     ;
  222.     set Status   = STATUS_FAILED
  223.     ;
  224.     ; extract parameters
  225.     ;
  226.     set Option   = $($1)
  227.     set SrcDir   = $($2)
  228.     set AddCopy  = $($3)
  229.     set DoCopy   = $($4)
  230.     set DoConfig = $($5)
  231.  
  232.     Set !DebugOutputControl = 1
  233.  
  234.     ;
  235.     ; Check if the language requested is supported
  236.     ;
  237.     set LanguageList = ^(LanguagesSupported, 1)
  238.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  239.         Return STATUS_NOLANGUAGE
  240.     endif
  241.  
  242.     set-subst LF = "\n"
  243.  
  244.     read-syms GeneralConstants
  245.     read-syms AllFileConstants
  246.     read-syms FileConstants"-"$(Option)
  247.     read-syms DialogConstants$(!STF_LANGUAGE)"-"$(Option)
  248.     ifstr(i) $(!NTN_Origination) == "NCPA"
  249.         set Continue = $(OK)
  250.     endif
  251.  
  252.     read-syms AllFileConstants$(!STF_LANGUAGE)
  253.     read-syms FileConstants$(!STF_LANGUAGE)"-"$(Option)
  254.  
  255.     detect date
  256.  
  257.     set-title  $(FunctionTitle)
  258.  
  259.     set to   = Begin
  260.     set from = Begin
  261. ;
  262. ;  Assume all is well.
  263. ;
  264.     set CommonStatus = STATUS_SUCCESSFUL
  265.  
  266.     EndWait
  267.  
  268. ;
  269. ;   Set up the operation-mode-based variables and gaily welcome
  270. ;   the user.  If the "install mode" variable is improperly set,
  271. ;   assume this is a new installation.
  272. ;
  273.  
  274. Begin = +
  275.     Set ActivateDetection = FALSE
  276.  
  277.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  278.         set StartLabel = removeadapter
  279.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  280.         set StartLabel = UpgradeSoftware
  281.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  282.         set StartLabel = bindingadapter
  283.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  284. ;        set ActivateDetection = TRUE
  285.         set StartLabel = configureadapter
  286.         ;
  287.         ;   You cannot config the software component
  288.         ;
  289.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  290.             ;Debug-Output "Cannot configure the software."
  291.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  292.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  293.                 Debug-Output "ShellCode error: cannot get an error string."
  294.                 goto ShellCodeError
  295.             endif
  296.             set Error = $($R0)
  297.             set from = end
  298.             set to = end
  299.             goto nonfatalinfo
  300.         endif
  301.     else
  302. ;        set ActivateDetection = TRUE
  303.         set StartLabel = installadapter
  304.         set OEM_ABANDON_OPTIONS = {}
  305.         set OEM_ABANDON_SOFTWARE = FALSE
  306.         set OEM_ABANDON_ON = TRUE
  307.     endif
  308.  
  309.  
  310.     ;  set the [Default values]
  311.  
  312.     ifstr(i) $(Option) == CPQNDIS
  313.         set IRQValue                    = *($(IRQList), 3)                       ; IRQ Level      = 10
  314.         set IOBaseAddrValue             = *($(IOBaseAddrList), 16)             ; IOBase Address = 0x300
  315.         set MemoryAddrValue             = *($(MemoryAddrList), 53)             ; Memory Address =    0xD0000
  316.         set FullDuplexValue             = *($(FullDuplexList), 1)             ; Full Duplex = off
  317.         set ModeValue                   = *($(ModeList), 2)                     ; Mode = I/O
  318.         set EarlyTransmitValue             = *($(EarlyTransmitList), 1)         ; Early Transmit = off
  319.         set LinkIntegrityValue             = *($(LinkIntegrityList), 2)         ; Link Integrity = Enabled
  320.         set CableTypeValue                 = *($(CableTypeList), 1)             ; Cable Type = Auto Detect
  321.     endif
  322.  
  323.     Set from = $(fatal)
  324.     Set to = $(fatal)
  325.     Goto $(StartLabel)
  326.  
  327. ;-----------------------------------------------
  328. ; Installation Section
  329. ;-----------------------------------------------
  330.  
  331. installadapter = +
  332. ;
  333. ;   First, check whether the same version of the software exists
  334. ;
  335.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  336.  
  337.     Ifstr $(KeyProduct) != $(KeyNull)
  338.         ;
  339.         ; Same version already existed in the local machine
  340.         ; Popup the dialog and ask the user whether he wants to continue
  341.         ;
  342.         CloseRegKey $(KeyProduct)
  343.  
  344.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  345.            ;
  346.            ; Cannot Install the same software again
  347.            ;
  348.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  349.                $(ProductVersion)
  350.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  351.                Debug-Output "ShellCode error: cannot get an error string."
  352.                goto ShellCodeError
  353.            endif
  354.  
  355.            goto end
  356.         else
  357.            ;
  358.            ; Add a new adapter card?
  359.            ;
  360.            Shell $(UtilityInf), CardExistedDlg
  361.  
  362.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  363.                Debug-Output "ShellCode error: cannot get an error string."
  364.                goto ShellCodeError
  365.            endif
  366.  
  367.            ifstr(i) $($R1) != "OK"
  368.                goto end
  369.            endif
  370.            set OldVersionExisted = $(TRUE)
  371.         endif
  372.     endif
  373.  
  374. ;
  375. ;  dll load addition
  376. ;
  377.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  378.  
  379.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  380.         Goto ShellCodeError
  381.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  382.         Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  383.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  384.             goto ShellCodeError
  385.         endif
  386.         set Error = $($R0)
  387.         Goto fatal
  388.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  389.         Goto successful
  390.     Endif
  391.  
  392.     Set SrcDir = $($R1)
  393.  
  394.     install "Install-Dll"
  395.  
  396.     goto adaptersetup
  397.  
  398. ;-----------------------------------------------
  399. ; Configuration Section
  400. ;-----------------------------------------------
  401. ;
  402. ;   Get the current values of all the parameters
  403. ;
  404. configureadapter = +
  405.     Ifstr $(KeyProduct) == $(KeyNull)
  406.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  407.         Ifstr $(KeyProduct) == $(KeyNull)
  408.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  409.             Debug-Output "Cannot find component product key"
  410.             goto fatalregistry
  411.         Endif
  412.     Endif
  413.  
  414.     ;
  415.     ; Get the other parameters;  they're attached to the service parameters key
  416.     ;
  417.     Debug-Output "INF: Shelling to FindService"
  418.     Shell $(UtilityInf) FindService, $(KeyProduct)
  419.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  420.         Debug-Output "INF: FindService shell failure"
  421.         Goto ShellCodeError
  422.     Endif
  423.     Ifstr(i) $($R0) != NO_ERROR
  424.         Debug-Output "INF: FindService Shell error: "$($R0)
  425.         Goto fatalregistry
  426.     endif
  427.  
  428.     Set KeyParameters = $($R2)
  429.  
  430.     ;
  431.     ;  We don't need the services key, so close it.
  432.     ;
  433.     CloseRegKey $($R1)
  434.  
  435.     Ifstr $(KeyParameters) == $(KeyNull)
  436.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  437.         Debug-Output "Cannot find component service"
  438.         goto fatalregistry
  439.     endif
  440.  
  441.     set OldVersionExisted = $(TRUE)
  442.  
  443.     set ValueName = ""
  444.     set ValueData = ""
  445.     set ValueStr  = ""
  446.     set ValueList = {}
  447.  
  448.  
  449.     ;
  450.     ; Get the old values from the Registry    [Get Values]
  451.     ; *********************************************************
  452.     EnumRegValue $(KeyParameters) ValueList
  453.  
  454.     ifstr(i) $(Option) == CPQNDIS
  455.  
  456.         ForListDo $(ValueList)
  457.             set ValueItem = $($)
  458.             set ValueName = *($(ValueItem),1)
  459.             set ValueData = *($(ValueItem),4)
  460.             ifstr(i) $(ValueName) == "FullDuplex"
  461.                 set FullDuplexIndex = $(ValueData)
  462.             else-ifstr(i) $(ValueName) == "IoBaseAddress"
  463.                 set IOBaseAddrIndex = $(ValueData)
  464.             else-ifstr(i) $(ValueName) == "InterruptNumber"
  465.                 set IRQValueIndex = $(ValueData)
  466.             else-ifstr(i) $(ValueName) == "Mode"
  467.                 set ModeIndex = $(ValueData)
  468.             else-ifstr(i) $(ValueName) == "EarlyTransmit"
  469.                 set EarlyTransmitIndex = $(ValueData)
  470.             else-ifstr(i) $(ValueName) == "LinkIntegrity"
  471.                 set LinkIntegrityIndex = $(ValueData)
  472.             else-ifstr(i) $(ValueName) == "CableType"
  473.                 set CableTypeIndex = $(ValueData)
  474.             else-ifstr(i) $(ValueName) == "PCCARDAttributeMemoryAddress"
  475.                 set MemoryAddrIndex = $(ValueData)
  476.             endif
  477.         EndForListDo
  478.  
  479.         set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  480.         ifstr(i) $(IRQValue) == ""
  481.             set IRQValue = *($(IRQList), 2)
  482.         endif
  483.  
  484.         set MemoryAddrValue = *($(MemoryAddrList), ~($(MemoryAddrValues),$(MemoryAddrIndex)))
  485.         ifstr(i) $(MemoryAddrValue) == ""
  486.             set MemoryAddrValue = *($(MemoryAddrValues), 2)
  487.         endif
  488.  
  489.         set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  490.         ifstr(i) $(IOBaseAddrValue) == ""
  491.             set IOBaseAddrValue = *($(IOBaseAddrList), 1)
  492.         endif
  493.  
  494.         set FullDuplexValue = *($(FullDuplexList), ~($(FullDuplexValues),$(FullDuplexIndex)))
  495.         ifstr(i) $(FullDuplexValue) == ""
  496.             set FullDuplexValue = *($(FullDuplexValues), 2)
  497.         endif
  498.  
  499.         set ModeValue = *($(ModeList), ~($(ModeValues),$(ModeIndex)))
  500.         ifstr(i) $(ModeValue) == ""
  501.             set ModeValue = *($(ModeValues), 2)
  502.         endif
  503.  
  504.         set EarlyTransmitValue = *($(EarlyTransmitList), ~($(EarlyTransmitValues),$(EarlyTransmitIndex)))
  505.         ifstr(i) $(EarlyTransmitValue) == ""
  506.             set EarlyTransmitValue = *($(EarlyTransmitValues), 2)
  507.         endif
  508.  
  509.         set LinkIntegrityValue = *($(LinkIntegrityList), ~($(LinkIntegrityValues),$(LinkIntegrityIndex)))
  510.         ifstr(i) $(LinkIntegrityValue) == ""
  511.             set LinkIntegrityValue = *($(LinkIntegrityValues), 2)
  512.         endif
  513.  
  514.         set CableTypeValue = *($(CableTypeList), ~($(CableTypeValues),$(CableTypeIndex)))
  515.         ifstr(i) $(CableTypeValue) == ""
  516.             set CableTypeValue = *($(CableTypeValues), 2)
  517.         endif
  518.  
  519.     endif
  520.  
  521.  
  522.     ;  Save the settings as they were read from the Registry.
  523.  
  524. ;    Shell $(ParamInf) Param_SaveValues
  525. ;    Set CurrParamSettings = $($R0)
  526. ;
  527. ;   Put up the adapter configuration dialog if necessary.
  528. ;
  529. ;   Note that $(CurrParamSettings) has the old known parameter values.
  530. ;
  531. adaptersetup = +
  532.  
  533.  
  534.     ;Shell "" DebugConfiguration "before displaying dialog"
  535.  
  536.     Set from = adapteroptions
  537.  
  538.  
  539. adapteroptions = +
  540.  
  541.     LoadLibrary "disk 1" $(DialogDllName) hLib
  542.     read-syms FileDependentDlg$(!STF_LANGUAGE)"-"$(Option)
  543.     set ENABLER = 0
  544.  
  545.     ifint $(RUNDLLCODE) == 1
  546.         ifint $(PCMCIA) == 1
  547.             LibraryProcedure ENABLER, $(hLib), EnablerRunning         ; check for enabler type
  548.             ifint $(ENABLER) == 1
  549.                 set Static1Label = "Configuring driver for Microsoft Enabler"
  550.             else-ifint $(ENABLER) == 2
  551.                 set Static1Label = "Configuring driver for IBM Card & Socket Services"
  552.             else
  553.                 set Static1Label = "Configuring driver for Compaq Enabler"
  554.             endif
  555.         endif
  556.     endif
  557.  
  558.  
  559.     ui start "InputDlg"  $(hLib)
  560.  
  561.     set ExitButton      = $(ButtonPressed)
  562.     ;Debug-Output " ButtonPressed "$(ButtonPressed)
  563.     ;Debug-Output " DLGEVENT "$(DLGEVENT)
  564.     FreeLibrary $(hLib)
  565.  
  566.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  567.  
  568.         ifstr(i) $(Option) == CPQNDIS
  569.             set IOBaseAddrIndex  = $(Combo1Out)
  570.             set MemoryAddrIndex  = $(Combo2Out)
  571.             set IRQValueIndex    = $(Combo3Out)
  572.             set FullDuplexIndex  = $(Combo4Out)
  573.             set ModeIndex         = $(Combo5Out)
  574.             set EarlyTransmitIndex = $(Combo6Out)
  575.             set LinkIntegrityIndex = $(Combo7Out)
  576.             set CableTypeIndex     = $(Combo8Out)
  577.             set ExitButton       = $(ButtonPressed)
  578.         endif
  579.  
  580.         ; Call out to the PCMCIA driver only if we're loading a PCMCIA device
  581.         ifint $(RUNDLLCODE) == 1
  582.             ifint $(PCMCIA) == 1
  583.                 ifint $(HOTPROGRAMPCMCIA) == 1
  584.  
  585.                     ; DLLCODE
  586.                     ; Locate the slot with the Compaq Card in it
  587.                     ;------------------------------------------------------
  588.                     LoadLibrary "disk 1" $(DialogDllName) hLib
  589.                     LibraryProcedure CONFIG, $(hLib), GetPCMCIAConfig
  590.                     set SLOTCOUNT = 8    ; was     *($(CONFIG),1), but returned 0
  591.                     set CONTROLLERTYPE = *($(CONFIG),3)
  592.                     ;Debug-Output "slot count="$(SLOTCOUNT)" controller type="$(CONTROLLERTYPE)
  593.                     set SLOT = 0
  594.                   slotloop = +
  595.                     LibraryProcedure INFO, $(hLib), GetVERS_1Tuple $(SLOT)      ;VERS_1
  596.                     ;Debug-Output "Slot "$(SLOT)
  597.                     ;Debug-Output "VERS_1 = "*($(INFO),3)
  598.                     ;Debug-Output "VERS_1 = "*($(INFO),4)
  599.                     ;Debug-Output "VERS_1 = "*($(INFO),5)
  600.                     ;Debug-Output "---------------------"
  601.  
  602.                     ifstr(i) *($(INFO),3) == $(VERS1Manufacturer)
  603.                         ifstr(i) *($(INFO),4) == $(VERS1Product)
  604.                             goto slotfound
  605.                         endif
  606.                     endif
  607.  
  608.                     set-add SLOT = $(SLOT), 1
  609.                     ifint $(SLOT) == $(SLOTCOUNT)
  610.                         goto slotnotfound
  611.                     else
  612.                         goto slotloop
  613.                     endif
  614.                   slotfound = +
  615.                     ;Debug-Output "Compaq card found in slot "$(SLOT)
  616.                     set SLOTFOUND = 1
  617.                     goto slotcontinue
  618.                   slotnotfound = +
  619.                     set SLOTFOUND = ""
  620.                     ;Debug-Output "Compaq card not found"
  621.                   slotcontinue = +
  622.                     FreeLibrary $(hLib)
  623.                 endif
  624.             endif
  625.         endif
  626.         ui pop 1
  627.  
  628.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  629.         set CommonStatus = STATUS_USERCANCEL
  630.         ui pop 1
  631.         goto end
  632.     else
  633.         set CommonStatus = STATUS_USERCANCEL
  634.         ui pop 1
  635.         Debug-Output "Action: unknown. Bye."
  636.         goto end
  637.     endif
  638.  
  639.  
  640. ;
  641. ;   If installing, go create the necessary keys;
  642. ;   if configuring, they're already open.
  643. ;
  644. skipoptions =+
  645.  
  646.     ifint $(OldVersionExisted) == $(TRUE)
  647.         ifstr(i) $(!NTN_InstallMode) == configure
  648.             goto writeparameters
  649.         endif
  650.     endif
  651.     StartWait
  652.     ;
  653.     ; Add Software Component
  654.     ;
  655.     ifint $(OldVersionExisted) == $(FALSE)
  656.  
  657.         ifstr(i) $(!NTN_InstallMode) == "install"
  658.            Ifstr(i) $(DoCopy) == "YES"
  659.  
  660.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  661.  
  662.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  663.                   Goto ShellCodeError
  664.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  665.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  666.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  667.                       goto ShellCodeError
  668.                   endif
  669.                   set Error = $($R0)
  670.                   Goto fatal
  671.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  672.                   Goto successful
  673.               Endif
  674.  
  675.               Set SrcDir = $($R1)
  676.  
  677.            Endif
  678.  
  679.            install "Install-Option"
  680.  
  681.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  682.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  683.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  684.                   goto ShellCodeError
  685.               endif
  686.               set Error = $($R0)
  687.               goto fatal
  688.            endif
  689.         endif
  690.  
  691.  
  692.  
  693.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  694.             $(ProductSoftwareName), +
  695.             $(ProductSoftwareName), +
  696.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  697.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  698.             $(NetEventDLL)
  699.  
  700.         Set OEM_ABANDON_SOFTWARE = TRUE
  701.  
  702.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  703.             Debug-Output "ShellCode error"
  704.             goto ShellCodeError
  705.         endif
  706.         ;
  707.         ;   At this point:
  708.         ;     $R1 contains the product version key handle;
  709.         ;     $R2 contains the NetRules subkey handle;
  710.         ;     $R3 contains the new Services key handle; and
  711.         ;     $R4 contains the Parameters key
  712.         ;     $R5 contains the Linkage Key
  713.         ;
  714.         set RegistryErrorIndex = $($R0)
  715.         set KeyProduct      = $($R1)
  716.         Set SoftNetRulesKey = $($R2)
  717.         CloseRegKey $($R3)
  718.         CloseRegKey $($R4)
  719.         CloseRegKey $($R5)
  720.  
  721.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  722.             EndWait
  723.             Debug-Output "Registry error: add software components"
  724.             CloseRegKey $(KeyProduct)
  725.             CloseRegKey $(SoftNetRulesKey)
  726.             goto fatalregistry
  727.         endif
  728.  
  729.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  730.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  731.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  732.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  733.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  734.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  735.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  736.  
  737.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  738.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  739.             Debug-Output "ShellCode error."
  740.             goto ShellCodeError
  741.         endif
  742.  
  743.         set RegistryErrorIndex = $($R0)
  744.  
  745.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  746.             EndWait
  747.             Debug-Output "Registry error: add value list."
  748.             CloseRegKey $(KeyProduct)
  749.             CloseRegKey $(SoftNetRulesKey)
  750.             goto fatalregistry
  751.         endif
  752.  
  753.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  754.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  755.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  756.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  757.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  758.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  759.  
  760.         Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  761.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  762.             Debug-Output "ShellCode error."
  763.             goto ShellCodeError
  764.         endif
  765.  
  766.         set RegistryErrorIndex = $($R0)
  767.  
  768.         CloseRegKey $(KeyProduct)
  769.         CloseRegKey $(SoftNetRulesKey)
  770.  
  771.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  772.             EndWait
  773.             Debug-Output "Resgitry error: add value list."
  774.             goto fatalregistry
  775.         endif
  776.     endif
  777. ;
  778. ;   Create the HARDWARE\Netcard region and its corresponding service
  779. ;
  780.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  781.  
  782.     ifint $($R4) != -1
  783.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  784.     endif
  785.  
  786.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  787.         Debug-Output "Cannot add hardware component"
  788.         goto ShellCodeError
  789.     endif
  790.  
  791.     set RegistryErrorIndex = $($R0)
  792.  
  793.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  794.         EndWait
  795.         Debug-Output "Registry error: add hardware component"
  796.         CloseRegKey $($R1)
  797.         CloseRegKey $($R2)
  798.         CloseRegKey $($R3)
  799.         goto fatalregistry
  800.     endif
  801.  
  802. ;
  803. ;   At this point:
  804. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  805. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  806. ;     $R3  Registry key handle for <service>\Parameters key
  807. ;     $R4  Adapter number assigned to adapter
  808. ;     $R5  Service name generated by combining svc name with adapter number
  809. ;
  810.     set KeyParameters = $($R3)
  811.     set KeyAdapterRules = $($R2)
  812.     set AdapterNumber = $($R4)
  813.  
  814.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  815.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  816.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  817.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  818.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  819.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  820.  
  821.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  822.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  823.         Debug-Output "ShellCode error"
  824.         goto ShellCodeError
  825.     endif
  826.  
  827.     CloseRegKey $($R1)
  828.  
  829.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  830.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  831.  
  832.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  833.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  834.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  835.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  836.  
  837.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  838.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  839.         Debug-Output "ShellCode error."
  840.         goto ShellCodeError
  841.     endif
  842.  
  843.     set RegistryErrorIndex = $($R0)
  844.  
  845.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  846.         EndWait
  847.         Debug-Output "Resgitry error: add value list."
  848.         CloseRegKey $(KeyParameters)
  849.         CloseRegKey $(KeyAdapterRules)
  850.         goto fatalregistry
  851.     endif
  852.  
  853.     CloseRegKey $(KeyAdapterRules)
  854.  
  855.     goto writeparameters
  856. ;
  857. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  858. ;
  859. writeparameters = +
  860.     Shell $(UtilityInf), GetBusTypeNum
  861.     set BusTypeNum = $($R1)
  862.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  863.         Debug-Output "ShellCode error."
  864.         goto ShellCodeError
  865.     endif
  866. ;
  867. ;   Add the rest of the parameters to the Services area
  868. ;
  869.  
  870.     ifstr(i) $(Option) == CPQNDIS             ; CE2
  871.  
  872.         set MemoryAddrValue  = *($(MemoryAddrValues),  ~($(MemoryAddrList), $(MemoryAddrIndex)))
  873.         set-add CommonMemoryAddrValue  = $(MemoryAddrValue), 4096
  874.         set IRQValue         = *($(IRQValues),         ~($(IRQList),        $(IRQValueIndex)))
  875.         set IOBaseAddrValue  = *($(IOBaseAddrValues),  ~($(IOBaseAddrList), $(IOBaseAddrIndex)))
  876.         set FullDuplexValue  = *($(FullDuplexValues),  ~($(FullDuplexList), $(FullDuplexIndex)))
  877.         set ModeValue              = *($(ModeValues),           ~($(ModeList),          $(ModeIndex)))
  878.         set EarlyTransmitValue  = *($(EarlyTransmitValues),  ~($(EarlyTransmitList), $(EarlyTransmitIndex)))
  879.         set LinkIntegrityValue  = *($(LinkIntegrityValues),  ~($(LinkIntegrityList), $(LinkIntegrityIndex)))
  880.         set CableTypeValue      = *($(CableTypeValues),      ~($(CableTypeList),     $(CableTypeIndex)))
  881.         set IOLengthValue        = 15
  882.         set NewValueList     = {{IoBaseAddress,           $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  883.                                    {IoLength,                  $(NoTitle),$(!REG_VT_DWORD), 15},+
  884.                                    {PCCARDAttributeMemoryAddress, $(NoTitle),$(!REG_VT_DWORD),$(MemoryAddrValue)},+
  885.                                    {PCCARDAttributeMemorySize, $(NoTitle),$(!REG_VT_DWORD),4096},+
  886.                                    {PCCARDAttributeMemoryOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  887.                                    {MemoryMappedBaseAddress, $(NoTitle),$(!REG_VT_DWORD),$(CommonMemoryAddrValue)},+
  888.                                    {MemoryMappedSize,        $(NoTitle),$(!REG_VT_DWORD),4096},+
  889.                                    {PCCARDMemoryWindowOffset, $(NoTitle),$(!REG_VT_DWORD),0},+
  890.                                    {InterruptNumber,         $(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  891.                                 {ResourceManager,            $(NoTitle),$(!REG_VT_SZ),TRUE},+
  892.                                 {FullDuplex,                 $(NoTitle),$(!REG_VT_DWORD),$(FullDuplexValue)},+
  893.                                 {MediaType,               $(NoTitle),$(!REG_VT_DWORD),1},+
  894.                                 {CableType,               $(NoTitle),$(!REG_VT_DWORD),$(CableTypeValue)},+
  895.                                 {LinkIntegrity,           $(NoTitle),$(!REG_VT_DWORD),$(LinkIntegrityValue)},+
  896.                                 {EarlyTransmit,           $(NoTitle),$(!REG_VT_DWORD),$(EarlyTransmitValue)},+
  897.                                 {FullDuplex,              $(NoTitle),$(!REG_VT_DWORD),$(FullDuplexValue)},+
  898.                                 {Mode,                     $(NoTitle),$(!REG_VT_DWORD),$(ModeValue)},+
  899.                                 {BusType,                 $(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  900.                                 {BusNumber,               $(NoTitle),$(!REG_VT_DWORD),0},+
  901.                                 {ResourceManager,         $(NoTitle),$(!REG_VT_DWORD),$(ENABLER)},+
  902.                                 {PCMCIA,                  $(NoTitle),$(!REG_VT_DWORD),1}}
  903.  
  904.     endif
  905.  
  906.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  907.     CloseRegKey $(KeyParameters)
  908.  
  909.     ; --------------------------------------------------------------------------------
  910.     ; Reprogram the PCMCIA slot with the new parameters
  911.     ; Should only be done during first time installation of NT, and if Compaq card was found
  912.     ; --------------------------------------------------------------------------------
  913.     ; Call out to the PCMCIA driver only if we're loading a PCMCIA device
  914.     ifint $(RUNDLLCODE) == 1
  915.         ifint $(PCMCIA) == 1
  916.             ifint $(ENABLER) == 1
  917.                 ifint $(HOTPROGRAMPCMCIA) == 1
  918.                     ifint $(SLOTFOUND) == 1            ; and a Compaq card was found in a slot
  919.                         LoadLibrary "disk 1" $(DialogDllName) hLib
  920.                         Debug-Output "Enabling network resources"
  921.                         ifstr(i) $(Option) == CM2NDIS3
  922.                             LibraryProcedure STATUS, $(hLib), SetupSlot $(SLOT) 0 $(IRQValue) $(IOBaseAddrValue) $(IOLengthValue) $(MemoryAddrValue) 4096 0
  923.                         else
  924.                             LibraryProcedure STATUS, $(hLib), SetupSlot $(SLOT) $(IRQValue) 0 $(IOBaseAddrValue) $(IOLengthValue) $(MemoryAddrValue) 4096 0
  925.                         endif
  926.                         Debug-Output "SetupSlot: "$(STATUS)
  927.                         FreeLibrary $(hLib)
  928.                     endif
  929.                 endif
  930.             endif
  931.         endif
  932.     endif
  933.  
  934.  
  935.     ; --------------------------------------------------------------------------------
  936.     ; Write the parameters to the PCMCIA database section, iff running MS Enabler
  937.     ; Delete the Compaq subtree and re-write the whole thing.  Much easier to code.
  938.     ; --------------------------------------------------------------------------------
  939.     ; Write the PCMCIA database only if we're installing for MS Enabler
  940.     ifint $(ENABLER) == 1
  941.         ifint $(PCMCIA) == 1
  942.             set PCMCIADatabaseKeyName = $(!NTN_ServiceBase)"\Pcmcia\DataBase"
  943.         ;    Debug-Output "Opening PCMICA database key "$(PCMCIADatabaseKeyName)
  944.             OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName) $(MAXIMUM_ALLOWED) PCMCIADatabaseKey
  945.  
  946.             ifstr $(PCMCIADatabaseKey) == $(NULL)
  947.                 ;Debug-Output "Pcmcia\DataBase not present"
  948.             else ; PCMCIA.sys is installed and registry has database section in it.
  949.                 ; Try to open Compaq section.  Delete it if found
  950.                 OpenRegKey $(!REG_H_LOCAL) "" $(PCMCIADatabaseKeyName)"\Compaq" $(MAXIMUM_ALLOWED) PCMCIADatabaseCompaqKey
  951.                 ifstr $(PCMCIADatabaseCompaqKey) != $(NULL) ; open succeeded, so delete it
  952.                     CloseRegKey $(PCMCIADatabaseCompaqKey)
  953.                                         ;Sorry we cannot let you do this
  954.                     ;DeleteRegTree $(PCMCIADatabaseKey) "Compaq"   ; bye bye!
  955.                 endif
  956.  
  957.                 CreateRegKey $(PCMCIADatabaseKey) {"Compaq", 0, 0} "" $(MAXIMUM_ALLOWED) "" PCMCIADatabaseCompaqKey
  958.  
  959.                 ; Do the TokenRing --------------------------------------------------------------------------------------
  960.                 CreateRegKey $(PCMCIADatabaseCompaqKey) {"Ethernet LAN Card", 0, 0} "" $(MAXIMUM_ALLOWED) 0 PCMCIADatabaseCompaqCTKey
  961.                 SetRegValue $(PCMCIADatabaseCompaqCTKey) {Driver, 0, $(!REG_VT_SZ),"cpqndis"}
  962.                 SetRegValue $(PCMCIADatabaseCompaqCTKey) {AttributeMemorySize, 0, $(!REG_VT_DWORD),4096}
  963.                 CloseRegKey $(PCMCIADatabaseCompaqCTKey)
  964.  
  965.                 CloseRegKey $(PCMCIADatabaseCompaqKey)
  966.                 CloseRegKey $(PCMCIADatabaseKey)
  967.             endif
  968.         endif
  969.     endif
  970.  
  971.  
  972.  
  973.     ; --------------------------------------------------------------------------------
  974.     ; --------------------------------------------------------------------------------
  975.  
  976.  
  977.  
  978.  
  979.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  980.         Debug-Output "ShellCode error."
  981.         goto ShellCodeError
  982.     endif
  983.  
  984.     set RegistryErrorIndex = $($R0)
  985.  
  986.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  987.         Debug-Output "Registry error: Add value list"
  988.         goto fatalregistry
  989.     endif
  990.  
  991.     EndWait
  992.  
  993.     goto successful
  994.  
  995. ;-----------------------------------------------
  996. ; Binding section
  997. ;-----------------------------------------------
  998. bindingadapter =+
  999.     set Error = "Binding: Sorry, not yet implemented."
  1000.     goto fatal
  1001.  
  1002. ;-----------------------------------------------
  1003. ; Removeadapter section
  1004. ;-----------------------------------------------
  1005.  
  1006. removeadapter = +
  1007.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1008.         ; Remove Software Component
  1009.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1010.             $(ProductSoftwareName)
  1011.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1012.             Debug-Output "ShellCode error"
  1013.             goto ShellCodeError
  1014.         endif
  1015.  
  1016.         set RegistryErrorIndex = $($R0)
  1017.  
  1018.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1019.             goto fatalregistry
  1020.         endif
  1021.     else
  1022.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1023.             $(ProductSoftwareName), $(!NTN_RegBase)
  1024.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1025.             Debug-Output "ShellCode error"
  1026.             goto ShellCodeError
  1027.         endif
  1028.  
  1029.         set RegistryErrorIndex = $($R0)
  1030.  
  1031.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1032.             goto fatalregistry
  1033.         endif
  1034.  
  1035.  
  1036.     endif
  1037.  
  1038.     goto end
  1039.  
  1040. ;-----------------------------------------------
  1041. ; Upgrade Software section
  1042. ;-----------------------------------------------
  1043.  
  1044. UpgradeSoftware = +
  1045.     ;
  1046.     ; First determine whether we want to do upgrade or update for software
  1047.     ; or hardware component. Then we will determine whether the Mode is
  1048.     ; update or upgrade.
  1049.     ;
  1050.     ; If the same version of the product existed in the registry, we do
  1051.     ; update. Otherwise, we will do a upgrade
  1052.     ;
  1053.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1054.         ; Upgrade software component
  1055.         ;
  1056.         ; see whether the same version exist or not
  1057.         ;
  1058.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1059.  
  1060.         Ifstr $(KeyProduct) != $(KeyNull)
  1061.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1062.             set Version = *($(VersionInfo), 4)
  1063.  
  1064.             ;
  1065.             ; Update the binaries
  1066.             ;
  1067.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  1068.  
  1069.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1070.                 Debug-Output "ShellCode error"
  1071.                 goto ShellCodeError
  1072.             endif
  1073.  
  1074.             set !UG_Filename = $($R0)
  1075.  
  1076.             ifstr(i) $(!UG_Filename) != ""
  1077.                 install "Install-Update"
  1078.                 ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1079.                     goto fatal
  1080.                 endif
  1081.             endif
  1082.  
  1083.             ; Upgrade the version number
  1084.             ;
  1085.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1086.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1087.  
  1088.             ;
  1089.             ; do nothing for update
  1090.             ;
  1091.             ifint $(Version) != $(ProductVersion)
  1092.                ;
  1093.                ; If the major version number is not the same,
  1094.                ; it is major upgrade. So let Upgrade the product
  1095.                ;
  1096.                ;
  1097.                ; make other upgrade change if necessary
  1098.                ;
  1099.             endif
  1100.             CloseRegKey $(KeyProduct)
  1101.         else
  1102.             ;
  1103.             ; Cannot Open software key, goto ERROR
  1104.             ;
  1105.             goto fatalregistry
  1106.         endif
  1107.     else
  1108.         ;
  1109.         ; upgrade/update hardware component
  1110.         ; There is no different between upgrade and update for hardware
  1111.         ; component
  1112.         ;
  1113.         ; 1. Get the Service Name
  1114.         ; 2. Change the NetRule section if necessary
  1115.         ;
  1116.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1117.               $(MAXIMUM_ALLOWED) NetworkCardKey
  1118.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1119.             ;
  1120.             ; Get Service name
  1121.             ;
  1122.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1123.             set ServiceName = *($(ServiceNameInfo), 4)
  1124.  
  1125.             ;
  1126.             ; Change the NetRule if necessary
  1127.             ;
  1128.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1129.                 $(MAXIMUM_ALLOWED) NetRuleKey
  1130.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1131.                 ;
  1132.                 ; Make the change....
  1133.                 ;
  1134.             else
  1135.                 ;
  1136.                 ; Error, cannot open net rules key
  1137.                 ;
  1138.                 goto fatalregistry
  1139.             endif
  1140.  
  1141.             CloseRegKey $(NetRules)
  1142.             CloseRegKey $(NetworkCardKey)
  1143.         else
  1144.             ;
  1145.             ; Error, cannot open network card key
  1146.             ;
  1147.             goto fatalregistry
  1148.         endif
  1149.         ;
  1150.         ; 3. Change the service section of the hardware. i.e.,
  1151.         ;    ParameterName change, value change, etc.
  1152.         ;
  1153.         OpenRegKey $(!REG_H_LOCAL) "" +
  1154.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  1155.               $(MAXIMUM_ALLOWED) ServiceKey
  1156.  
  1157.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  1158.             ;
  1159.             ; Get the ServiceKey to change the Start value
  1160.             ; or Type value. Or open Parameters key to
  1161.             ; change the hardware parameters if necessary.
  1162.             ;
  1163.             CloseRegKey $(ServiceKey)
  1164.         else
  1165.             ;
  1166.             ; Error, cannot open network card key
  1167.             ;
  1168.             goto fatalregistry
  1169.         endif
  1170.     endif
  1171.  
  1172.     goto end
  1173.     ;
  1174.     ; End of Upgrade Software
  1175.     ;
  1176.  
  1177. ;
  1178. ;  Escape hatches
  1179. ;
  1180. successful = +
  1181.     goto end
  1182.  
  1183. abandon = +
  1184.     ForListDo $(OEM_ABANDON_OPTIONS)
  1185.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1186.             $(ProductSoftwareName), $($)
  1187.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1188.             Debug-Output "ShellCode error"
  1189.             goto ShellCodeError
  1190.         endif
  1191.  
  1192.         set RegistryErrorIndex = $($R0)
  1193.  
  1194.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1195.             goto fatalregistry
  1196.         endif
  1197.     EndForListDo
  1198.  
  1199.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1200.         ; Remove Software Component
  1201.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1202.             $(ProductSoftwareName), FALSE
  1203.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1204.             Debug-Output "ShellCode error"
  1205.             goto ShellCodeError
  1206.         endif
  1207.  
  1208.         set RegistryErrorIndex = $($R0)
  1209.  
  1210.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1211.             goto fatalregistry
  1212.         endif
  1213.     endif
  1214.  
  1215.     goto end
  1216.  
  1217. ;
  1218. ; warning display
  1219. ;
  1220. warning = +
  1221.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1222.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1223.         goto ShellCodeError
  1224.     endif
  1225.     ifstr(i) $($R1) == "OK"
  1226.         goto $(to)
  1227.     else-ifstr(i) $($R1) == "CANCEL"
  1228.         goto $(from)
  1229.     else
  1230.         goto "end"
  1231.     endif
  1232. ;
  1233. ; non fatal error display
  1234. ;
  1235. nonfatalinfo = +
  1236.     Set Severity = STATUS
  1237.     Set CommonStatus = STATUS_USERCANCEL
  1238.     goto nonfatalmsg
  1239. nonfatal = +
  1240.     Set Severity = NONFATAL
  1241.     goto nonfatalmsg
  1242. nonfatalmsg = +
  1243.     ifstr(i) $(Error) == ""
  1244.         Set Severity = NONFATAL
  1245.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1246.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1247.             goto ShellCodeError
  1248.         endif
  1249.         set Error = $($R0)
  1250.     endif
  1251.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1252.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1253.         goto ShellCodeError
  1254.     endif
  1255.     ifstr(i) $($R1) == "OK"
  1256.         goto $(from)
  1257.     else
  1258.         goto "end"
  1259.     endif
  1260.  
  1261. ;
  1262. ;  Registry is broken
  1263. ;
  1264. fatalregistry = +
  1265.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1266.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1267.         goto ShellCodeError
  1268.     endif
  1269.     set Error = $($R0)
  1270.     goto fatal
  1271. ;
  1272. ;  Netcard detection failure
  1273. ;
  1274. fataldetect = +
  1275.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1276.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1277.         Debug-Output "ShellCode error: cannot get an error string."
  1278.         goto ShellCodeError
  1279.     endif
  1280.     set Error = $($R0)
  1281.     Goto fatal
  1282. ;
  1283. ; fatal error display
  1284. ;
  1285. fatal = +
  1286.     ifstr(i) $(Error) == ""
  1287.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1288.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1289.             goto ShellCodeError
  1290.         endif
  1291.         set Error = $($R0)
  1292.     endif
  1293.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1294.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1295.         goto ShellCodeError
  1296.     endif
  1297.  
  1298.     goto setfailed
  1299.  
  1300. ;
  1301. ;  Shelling error
  1302. ;
  1303. ShellCodeError = +
  1304.     set DlgType      = "MessageBox"
  1305.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1306.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  1307.     set STF_MB_TYPE  = 1
  1308.     set STF_MB_ICON  = 3
  1309.     set STF_MB_DEF   = 1
  1310.     ui start "Error Message"
  1311.     goto setfailed
  1312.  
  1313. setfailed = +
  1314.     set CommonStatus = STATUS_FAILED
  1315.     ;
  1316.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1317.     ;
  1318.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1319.         set OEM_ABANDON_ON = FALSE
  1320.         goto abandon
  1321.     endif
  1322.     goto end
  1323.  
  1324. end = +
  1325.     goto term
  1326.  
  1327. term = +
  1328.  
  1329.     Return $(CommonStatus)
  1330.  
  1331. [DebugConfiguration]
  1332.  
  1333.     Set InfName = "OEMSETUP.INF"
  1334.     ;Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
  1335.     ;Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
  1336.     ;Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
  1337.     ;Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
  1338.     ;Debug-Output $(InfName)" MemoryAddr is "$(!p:MemoryAddr)
  1339.     ;Debug-Output $(InfName)" MappedValue is "$(!p:MappedValue)
  1340.  
  1341.     return
  1342.  
  1343.  
  1344. ;***************************************************************
  1345. ;  INSTALL SECTIONS
  1346. ;***************************************************************
  1347. [Install-Option]
  1348.     set STF_VITAL = ""
  1349.  
  1350.     ifstr(i) $(AddCopy) == "YES"
  1351.  
  1352.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1353.  
  1354.     endif
  1355.  
  1356.     ifstr(i) $(DoCopy) == "YES"
  1357.  
  1358.        ;
  1359.        ; Copy files in the copy list
  1360.        ;
  1361.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1362.        CopyFilesInCopyList
  1363.  
  1364.     endif
  1365.  
  1366.     Exit
  1367.  
  1368. [Install-Update]
  1369.    set STF_VITAL        = ""
  1370.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1371.    ;set STF_VERSION     = "YES"
  1372.  
  1373.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1374.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1375.  
  1376.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1377.    CopyFilesInCopyList
  1378.  
  1379.    exit
  1380.  
  1381.  
  1382. [Install-Dll]
  1383.    set STF_VITAL     = ""
  1384.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1385.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1386.    CopyFilesInCopyList
  1387.    exit
  1388.  
  1389. [Source Media Descriptions]
  1390.     1  = "Compaq Ethernet LAN Card Setup Disk for NT"
  1391.  
  1392. [Signature]
  1393.     FileType = MICROSOFT_DRVLIB_FILE
  1394. [GetSignature]
  1395.     read-syms Signature
  1396.     return $(FileType)
  1397.  
  1398. [ProductType]
  1399. STF_PRODUCT  = Winnt
  1400. STF_PLATFORM = I386
  1401.  
  1402.  
  1403. [Files-Inf]
  1404. 1, OEMSETUP.INF, SIZE=43500,    RENAME=$(!UG_Filename)
  1405.  
  1406. [Files-Dll]
  1407. 1, CPQNDIS.DLL,  SIZE=100000
  1408.  
  1409. [Files-CPQNDIS]
  1410. 1, CPQNDIS.SYS, SIZE=43008
  1411.  
  1412.  
  1413. [LanguagesSupported]
  1414.     ENG
  1415.  
  1416. [AllFileConstantsENG]
  1417. ProCaption   = "Windows NT Setup"
  1418. ProCancel    = "Cancel"
  1419. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1420.                "Are you sure you want to cancel copying files?"
  1421. ProCancelCap = "Network Setup Message"
  1422. ProText1     = "Copying:"
  1423. ProText2     = "To:"
  1424. DialogDllName     = "CPQNDIS.DLL"
  1425.  
  1426.  
  1427.  
  1428. ; START CE/2 -------------------------------------------------------------------------------------------
  1429.  
  1430. [FileConstantsENG-CPQNDIS]
  1431. FunctionTitle           = $(GenericAdapterName)" Setup"$(GenericInfVersion)
  1432. ProductSoftwareTitle    = $(GenericDriverName)
  1433. ProductHardwareTitle    = $(GenericAdapterName)
  1434. IRQList                   = ^(IRQChoices, 1)
  1435. IRQValues                 = ^(IRQChoices, 2)
  1436. IOBaseAddrList            = ^(IOBaseAddrChoices, 1)
  1437. IOBaseAddrValues          = ^(IOBaseAddrChoices, 2)
  1438. MemoryAddrList            = ^(MemoryAddrChoices,1)
  1439. MemoryAddrValues         = ^(MemoryAddrChoices,2)
  1440. FullDuplexList           = ^(FullDuplexChoices,1)
  1441. FullDuplexValues        = ^(FullDuplexChoices,2)
  1442. ModeList                 = ^(ModeChoices, 1)
  1443. ModeValues                 = ^(ModeChoices, 2)
  1444. EarlyTransmitList        = ^(EarlyTransmitChoices, 1)
  1445. EarlyTransmitValues        = ^(EarlyTransmitChoices, 2)
  1446. LinkIntegrityList         = ^(LinkIntegrityChoices, 1)
  1447. LinkIntegrityValues         = ^(LinkIntegrityChoices, 2)
  1448. CableTypeList             = ^(CableTypeChoices, 1)
  1449. CableTypeValues             = ^(CableTypeChoices, 2)
  1450. ModemIOBaseAddressList   = ^(ModemIOBaseAddressChoices,1)
  1451. ModemIOBaseAddressValues = ^(ModemIOBaseAddressChoices,2)
  1452.  
  1453.  
  1454. [DialogConstantsENG-CPQNDIS]
  1455. Help        = "&Help"
  1456. Exit        = "Cancel"
  1457. OK          = "OK"
  1458. HelpContext = ""
  1459. Continue    = "Continue"
  1460. Cancel      = "Cancel"
  1461.  
  1462. [FileDependentDlgENG-CPQNDIS]
  1463. DlgType = "RadioCombination"
  1464. DlgTemplate = "CE2"
  1465. Caption = $(FunctionTitle)
  1466. HelpContext = $(!IDH_DB_OEMNADE2_INS)
  1467. CBOptionsGreyed = {}
  1468. NotifyFields = {NO, NO, NO, NO, NO, NO, NO, NO}
  1469. Combo1Label = "I/&O Port Address:"
  1470. Combo2Label = "&Memory Address:"
  1471. Combo3Label = "&Interrupt:"
  1472. Combo4Label = "&Full Duplex:"
  1473. Combo5Label = "Mo&de:"
  1474. Combo6Label = "&Early Transmit:"
  1475. Combo7Label = "&Link Integrity:"
  1476. Combo8Label = "&Cable Type:"
  1477. Combo1List = $(IOBaseAddrList)
  1478. Combo1Out  = $(IOBaseAddrValue)
  1479. Combo2List = $(MemoryAddrList)
  1480. Combo2Out  = $(MemoryAddrValue)
  1481. Combo3List = $(IRQList)
  1482. Combo3Out  = $(IRQValue)
  1483. Combo4List = $(FullDuplexList)
  1484. Combo4Out  = $(FullDuplexValue)
  1485. Combo5List = $(ModeList)
  1486. Combo5Out  = $(ModeValue)
  1487. Combo6List = $(EarlyTransmitList)
  1488. Combo6Out  = $(EarlyTransmitValue)
  1489. Combo7List = $(LinkIntegrityList)
  1490. Combo7Out  = $(LinkIntegrityValue)
  1491. Combo8List = $(CableTypeList)
  1492. Combo8Out  = $(CableTypeValue)
  1493. ComboListItemsIn  = {Combo1List,Combo2List,Combo3List, Combo4List,Combo5List,Combo6List,Combo7List,Combo8List}
  1494. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out, Combo6Out, Combo7Out, Combo8Out}
  1495. EditTextIn = {"", ""}
  1496. EditTextLim = {"",""}
  1497.  
  1498. ; END CE/2 -------------------------------------------------------------------------------------------
  1499.  
  1500.  
  1501. [MemoryAddrChoices]
  1502. MA_1  = "0xA0000", 655360
  1503. MA_2  = "0xA1000", 659456
  1504. MA_3  = "0xA2000", 663552
  1505. MA_4  = "0xA3000", 667648
  1506. MA_5  = "0xA4000", 671744
  1507. MA_6  = "0xA5000", 675840
  1508. MA_7  = "0xA6000", 679936
  1509. MA_8  = "0xA7000", 684032
  1510. MA_9  = "0xA8000", 688128
  1511. MA_10 = "0xA9000", 692224
  1512. MA_11 = "0xAA000", 696320
  1513. MA_12 = "0xAB000", 700416
  1514. MA_13 = "0xAC000", 704512
  1515. MA_14 = "0xAD000", 708608
  1516. MA_15 = "0xAE000", 712704
  1517. MA_16 = "0xAF000", 716800
  1518. MA_17 = "0xB0000", 720896
  1519. MA_18 = "0xB1000", 724992
  1520. MA_19 = "0xB2000", 729088
  1521. MA_20 = "0xB3000", 733184
  1522. MA_21 = "0xB4000", 737280
  1523. MA_22 = "0xB5000", 741376
  1524. MA_23 = "0xB6000", 745472
  1525. MA_24 = "0xB7000", 749568
  1526. MA_25 = "0xB8000", 753664
  1527. MA_26 = "0xB9000", 757760
  1528. MA_27 = "0xBA000", 761856
  1529. MA_28 = "0xBB000", 765952
  1530. MA_29 = "0xBC000", 770048
  1531. MA_30 = "0xBD000", 774144
  1532. MA_31 = "0xBE000", 778240
  1533. MA_32 = "0xBF000", 782336
  1534. MA_33 = "0xC0000", 786432
  1535. MA_34 = "0xC1000", 790528
  1536. MA_35 = "0xC2000", 794624
  1537. MA_36 = "0xC3000", 798720
  1538. MA_37 = "0xC4000", 802816
  1539. MA_38 = "0xC5000", 806912
  1540. MA_39 = "0xC6000", 811008
  1541. MA_40 = "0xC7000", 815104
  1542. MA_41 = "0xC8000", 819200
  1543. MA_42 = "0xC9000", 823296
  1544. MA_43 = "0xCA000", 827392
  1545. MA_44 = "0xCB000", 831488
  1546. MA_45 = "0xCC000", 835584
  1547. MA_46 = "0xCD000", 839680
  1548. MA_47 = "0xCE000", 843776
  1549. MA_48 = "0xCF000", 847872
  1550. MA_49 = "0xD0000", 851968
  1551. MA_50 = "0xD1000", 856064
  1552. MA_51 = "0xD2000", 860160
  1553. MA_52 = "0xD3000", 864256
  1554. MA_53 = "0xD4000", 868352
  1555. MA_54 = "0xD5000", 872448
  1556. MA_55 = "0xD6000", 876544
  1557. MA_56 = "0xD7000", 880640
  1558. MA_57 = "0xD8000", 884736
  1559. MA_58 = "0xD9000", 888832
  1560. MA_59 = "0xDA000", 892928
  1561. MA_60 = "0xDB000", 897024
  1562. MA_61 = "0xDC000", 901120
  1563. MA_62 = "0xDD000", 905216
  1564. MA_63 = "0xDE000", 909312
  1565. MA_64 = "0xDF000", 913408
  1566. MA_65 = "0xE0000", 917504
  1567. MA_66 = "0xE1000", 921600
  1568. MA_67 = "0xE2000", 925696
  1569. MA_68 = "0xE3000", 929792
  1570. MA_69 = "0xE4000", 933888
  1571. MA_70 = "0xE5000", 937984
  1572. MA_71 = "0xE6000", 942080
  1573. MA_72 = "0xE7000", 946176
  1574. MA_73 = "0xE8000", 950272
  1575. MA_74 = "0xE9000", 954368
  1576. MA_75 = "0xEA000", 958464
  1577. MA_76 = "0xEB000", 962560
  1578. MA_77 = "0xEC000", 966656
  1579. MA_78 = "0xED000", 970752
  1580. MA_79 = "0xEE000", 974848
  1581. MA_80 = "0xEF000", 978944
  1582. MA_81 = "0xF0000", 983040
  1583. MA_82 = "0xF1000", 987136
  1584. MA_83 = "0xF2000", 991232
  1585. MA_84 = "0xF3000", 995328
  1586. MA_85 = "0xF4000", 999424
  1587. MA_86 = "0xF5000", 1003520
  1588. MA_87 = "0xF6000", 1007616
  1589. MA_88 = "0xF7000", 1011712
  1590. MA_89 = "0xF8000", 1015808
  1591. MA_90 = "0xF9000", 1019904
  1592. MA_91 = "0xFA000", 1024000
  1593. MA_92 = "0xFB000", 1028096
  1594. MA_93 = "0xFC000", 1032192
  1595. MA_94 = "0xFD000", 1036288
  1596. MA_95 = "0xFE000", 1040384
  1597.  
  1598. [TransceiverChoices]
  1599. TR_1 = "Twisted Pair (10bT)", 0
  1600. TR_2 = "Thin Net (10b2 BNC/COAX)", 1
  1601.  
  1602. [IRQChoices]
  1603. ;Interrupts available on the PCIC: { 3,4,5,7,8,10,11,12,14,15 }
  1604. ;Interrupts available on the TCIC: { 3,4,5,6,7,10,14 }
  1605. ;14 = fixed disk
  1606. ;12 = keyboard
  1607. ;6  = floppy disk
  1608. ;union(PCIC, TCIC) - {14} = 3,4,5,7,10
  1609. IRQ_1 = "3",3
  1610. IRQ_2 = "4",4
  1611. IRQ_3 = "5",5
  1612. IRQ_4 = "7",7
  1613. IRQ_5 = "10",10
  1614. IRQ_6 = "11",11
  1615. IRQ_7 = "15",15
  1616.  
  1617. [FullDuplexChoices]
  1618. FD_1 = "No", 0
  1619. FD_2 = "Yes", 1
  1620.  
  1621. [ModeChoices]
  1622. MO_1 = "Shared Memory", 0
  1623. MO_2 = "I/O Mode", 1
  1624.  
  1625. [EarlyTransmitChoices]
  1626. ET_1 = "Off", 0
  1627. ET_2 = "On", 1
  1628.  
  1629. [LinkIntegrityChoices]
  1630. LI_1 = "Disabled", 0
  1631. LI_2 = "Enabled", 1
  1632.  
  1633. [CableTypeChoices]
  1634. CT_1 = "Auto Detect", 0
  1635. CT_2 = "Twisted Pair (10bT)", 1
  1636. CT_3 = "Thin Net (10b2 COAX)", 2
  1637.  
  1638. [IOBaseAddrChoices]
  1639. ; 0x3E0 is where PCIC is located
  1640. ; 0x240 is where TCIC is located
  1641. ; therefore user cannot select these for locating the ethernet adapter
  1642. IOBase_1  = "0x200",512
  1643. IOBase_2  = "0x210",528
  1644. IOBase_3  = "0x220",544
  1645. IOBase_4  = "0x230",560
  1646. ;IOBase_5  = "0x240",576
  1647. IOBase_6  = "0x250",592
  1648. IOBase_7  = "0x260",608
  1649. IOBase_8  = "0x270",624
  1650. IOBase_9  = "0x280",640
  1651. IOBase_10 = "0x290",656
  1652. IOBase_11 = "0x2A0",672
  1653. IOBase_12 = "0x2B0",698
  1654. IOBase_13 = "0x2C0",714
  1655. IOBase_14 = "0x2D0",730
  1656. IOBase_15 = "0x2E0",746
  1657. IOBase_16 = "0x2F0",752
  1658. IOBase_17 = "0x300",768
  1659. IOBase_18 = "0x310",784
  1660. IOBase_19 = "0x320",800
  1661. IOBase_20 = "0x330",816
  1662. IOBase_21 = "0x340",832
  1663. IOBase_22 = "0x350",848
  1664. IOBase_23 = "0x360",864
  1665. IOBase_24 = "0x370",880
  1666. IOBase_25 = "0x380",896
  1667. IOBase_26 = "0x390",912
  1668. IOBase_27 = "0x3A0",928
  1669. IOBase_28 = "0x3B0",944
  1670. IOBase_29 = "0x3C0",960
  1671. IOBase_30 = "0x3D0",976
  1672.  
  1673.